using System;
using UnityEngine;

public class GGDebug
{
	public struct TimeDebug
	{
		public long ticks;

		public string name;

		public void Report()
		{
			EndTime(this);
		}
	}

	public static TimeDebug StartTime(string name)
	{
		TimeDebug result = default(TimeDebug);
		result.ticks = DateTime.UtcNow.Ticks;
		result.name = name;
		return result;
	}

	public static void EndTime(TimeDebug time)
	{
		long ticks = DateTime.UtcNow.Ticks;
		long num = ticks - time.ticks;
		Debug.Log(string.Format("Duration {0} = {1}", time.name, num / 1000));
	}

	public static void Log(string logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Log(logMsg);
		}
	}

	public static void DebugLog(string logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Log(logMsg);
		}
	}

	public static void DebugLog(int logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Log(logMsg);
		}
	}

	public static void DebugLog(Vector3 logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Log(logMsg);
		}
	}

	public static void DebugLog(float logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Log(logMsg);
		}
	}

	public static void DebugLogError(string logMsg)
	{
		if (ConfigBase.instance.debug)
		{
			Debug.LogError(logMsg);
		}
	}

	public static void DebugBreak()
	{
		if (ConfigBase.instance.debug)
		{
			Debug.Break();
		}
	}
}
